Brute Force 原理分析及利用
原理
暴力破解(Brute Force)漏洞,个人理解为应用在用户输入账号密码时控制不严而产生的。存在该漏洞的应用通常未对错误的输入行为(通常为输入登录密码)做限制,导致攻击者可以使用已有的字典,通过枚举法,获得系统的登录账号密码。
这里以DVWA中的Burte Force模块为例。上图为利用BurpSuit抓取的输入错误密码时返回的数据包。
该图为利用BurpSuit抓取的输入正确密码时返回的数据包。可以看到,两次返回的包长度不相同,通常暴力攻击的手段是利用工具或脚本,将事先准备好的字典作为输入,并记录下每次返回的包长度,寻找返回长度“与众不同”的输入项,一般而言,该输入项即为寻找的正确密码。
漏洞利用
下图显示了在BurpSuit中,首先将输入账号密码页面拦截并发送到intruder模块中,通目标参数(如password)选中作为暴破点。
随后,在payload中导入事先准备好的字典,并点击右上角的stark attack按钮。
最后的结果显示,当payload为password时,返回的长度跟其他的均不同,经过测试,该参数为admin账户正确的登录密码。
事实上,众多应用引入了诸如分发并检查token的机制来防止暴力破解等攻击手段,对于此,我们可以使用burp或利用脚本将每次提交payload返回的token值作为下一次提交的输入来绕过这种机制。
防范手段
限定用户的错误输入,达到一定数量时(如5次)锁定用户账号,对于多次锁定的账号增加双因子认证(如手机短信验证)来防止暴力破解攻击。